<?php

class User_Backend_Security_ChangePassword extends Kernel_Action_Form //Security_Action_Secured_Abstract 
{
    
    /**
     * Инициализирует элементы формы.
     *
     */
    protected function _initElements()
    {
        $this->_addElement('password', 'password', array(
            'caption' => __('OLD_PASSWORD'),
            'validators' => array('current-password'),
        ));
        $this->_addElement('password1', 'password', array(
            'caption' => __('NEW_PASSWORD'),
            'validators' => array('password'),
        ));
        $this->_addElement('password2', 'password', array('caption' => __('CONFIRM_NEW_PASSWORD')));
        $this->_setAsRequired();
    }
    
    /**
     * Проверяет совпадение друг с другом значений полей типа "password".
     * Перекрываем, чтобы указать, какие именно поля нужно проверять на
     * соответствие.
     *
     * @param   string  $element1[, string  $element2, …]
     */
    protected function _validatePasswords() {
        parent::_validatePasswords('password1', 'password2');
    }
    
    protected function _insert()
    {
        $this->id = (int)Application::getRequest()->get('id');
        
        Security_Utils_Subject::setPassword(
            Security_Utils_Subject::getSubjectByProfile($this->id, Security_Subject::ADMIN), 
            $this->_getValue('password1'));
    }
    
}